﻿using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using STT.Business;
using STT.Entities;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Data;
using System.Web;
using STT.Layer.Connection;

namespace STT.Admin.UserControls
{
    public partial class ucMonHoc : System.Web.UI.UserControl
    {
        ToolBox tb = new ToolBox();

        public bool chonSuaClick;
        protected void Page_Load(object sender, EventArgs e)
        {
            LoadMonHoc();
            Loanddd();
            if (!IsPostBack)
            {
                Methods.Chon(ref ddNganh);
            }
             
        }
        void Loanddd()
        {
            ddNganh.DataSource = BTbNganh.SelectAll();
            ddNganh.DataTextField = "TenNganh";
            ddNganh.DataValueField = "MaNganh";
            ddNganh.DataBind();
        }
        void LoadMonHoc()
        {
            gvMonHoc.AutoGenerateColumns = false;
            gvMonHoc.DataSource = tb.GetDataTableByNguoiTao("TbMonHoc_SelectAll", Session["TenDN"].ToString());
            gvMonHoc.DataBind();
        }
        bool KiemTraDuLieu()
        {
            return BTbMonHoc.KiemTraDuLieu(new ETbMonHoc
            {
               TenMonHoc=txtTenMonHoc.Text.Trim(),
               NguoiTao = Session["TenDN"].ToString().Trim()
            });
        }
        bool KiemTraDuLieu_Sua()
        {
            return BTbMonHoc.KiemTraDuLieu_Sua(new ETbMonHoc
            {
                TenMonHoc = txtTenMonHoc.Text,
                MaMonHoc = int.Parse(maMH)
            });
        }
        void ThongBao(string Loi)
        {
            ScriptManager.RegisterClientScriptBlock(this, GetType(), "Thông báo!", "<script>alert('" + Loi + "')</script>", false);
        }
        protected void gvMonHoc_RowEditing(object sender, GridViewEditEventArgs e)
        {
            gvMonHoc.EditIndex = e.NewEditIndex;
            gvMonHoc.DataBind();
        }

        protected void gvMonHoc_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            try
            {
                int MaKhoaHoc = int.Parse(gvMonHoc.DataKeys[e.RowIndex].Value.ToString());

                BTbMonHoc.Delete(MaKhoaHoc);
                LoadMonHoc();
                Session["action"] = 3;
            }
            catch
            {
                ThongBao("Dữ liệu liên quan đến môn học này vẫn tồn tại, vui lòng kiểm tra lại dữ liệu!");
            }
        }

        protected void gvMonHoc_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            gvMonHoc.EditIndex = -1;
            gvMonHoc.DataBind();
        }

        protected void lbThemMoi_Click(object sender, EventArgs e)
        {
            if (!KiemTraDuLieu())
            {
                BTbMonHoc.Insert(new ETbMonHoc
                {
                    TenMonHoc = txtTenMonHoc.Text,
                    SoHocTrinh = int.Parse(txtSoHocTrinh.Text),
                    MaNganh = int.Parse(ddNganh.SelectedValue),
                    NguoiTao= Session["TenDN"].ToString()
                });

                LoadMonHoc();
                Session["action"] = 1;
            }
            else
            {
                ThongBao("Môn học này đã tồn tại!");

            }
        }

        protected void lbXuatDuLieu_Click(object sender, EventArgs e)
        {

        }

        protected void lbXuatExcel_Click(object sender, EventArgs e)
        {

        }
        protected void btThemExcel_Click(object sender, EventArgs e)
        {

        }
        protected void lbXoaTat_Click(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < gvMonHoc.Rows.Count; i++)
                {
                    CheckBox cbChon = (CheckBox)gvMonHoc.Rows[i].Cells[0].FindControl("cbChon");
                    if (cbChon != null && cbChon.Checked)
                    {
                        BTbMonHoc.Delete(int.Parse(gvMonHoc.DataKeys[i].Value.ToString()));
                    }
                }

                LoadMonHoc();
                Session["action"] = 3;
            }
            catch
            {
                ThongBao("Dữ liệu liên quan đến môn học này vẫn tồn tại, vui lòng kiểm tra lại dữ liệu!");
            }
        }

        // Phân trang
        protected void gvMonHoc_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvMonHoc.PageIndex = e.NewPageIndex;
            gvMonHoc.DataBind();
        }
        public static String maMH;
        protected void gvMonHoc_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "ChonSua")
            {
                ddNganh.Enabled = true;
                int index = Convert.ToInt32(e.CommandArgument);
                maMH = gvMonHoc.DataKeys[index].Values[0].ToString();
                // Thay đổi tiêu đề
                txtTieuDe.InnerText = "Sửa môn học";
                txtTenMonHoc.Text = HttpUtility.HtmlDecode(gvMonHoc.Rows[index].Cells[2].Text);
                txtSoHocTrinh.Text = gvMonHoc.Rows[index].Cells[3].Text;
                ddNganh.SelectedItem.Text = HttpUtility.HtmlDecode(gvMonHoc.Rows[index].Cells[4].Text);
                chonSuaClick = true;
            }
        }

        protected void btSua_Click(object sender, EventArgs e)
        {
            if (!KiemTraDuLieu_Sua())
            {
                BTbMonHoc.Update(new ETbMonHoc
                {
                    MaMonHoc = int.Parse(maMH),
                    TenMonHoc = txtTenMonHoc.Text,
                    SoHocTrinh = int.Parse(txtSoHocTrinh.Text),
                    MaNganh = int.Parse(ddNganh.SelectedValue)

                });
                LoadMonHoc();
                Session["action"] = 2;
            }
        }

        protected void btSearch_Click(object sender, ImageClickEventArgs e)
        {
           gvMonHoc.DataSource= BTbMonHoc.SearchTenMonHoc(new ETbMonHoc
            {
                TenMonHoc = txtTimKiem.Text
            });
           gvMonHoc.DataBind();
        }

        protected void btImport_Click(object sender, EventArgs e)
        {
           
        }

         
    }
}